import type { UserMenu } from '@/store'
import { checkAuth } from '@/utils/methods'

/*
有children的节点的path需要设置为''
有children的节点本身是无法点击的，
是否显示，依赖于是否有需要显示的子节点
*/
const _topMenu: UserMenu[] = [
  // {
  //   path: '/',
  //   title: '元数据管理',
  //   children: [
  //     {
  //       path: '/dataUse',
  //       title: '元数据分析'
  //     },
  //     {
  //       path: '/dataUse',
  //       title: '字典管理'
  //     }
  //   ]
  // },
]

const filterMenu = (data: UserMenu[]): UserMenu[] => {
  data.forEach((item) => {
    if (Array.isArray(item.children)) {
      item.children = filterMenu(item.children)
    }
  })

  return data.filter((item) => {
    if (item.path) {
      return checkAuth(item.path)
    } else if (Array.isArray(item.children)) {
      return item.children.length !== 0
    }
    return false
  })
}

export const topMenu = filterMenu(_topMenu)
export const legalPathMap = new Map<string, boolean>()

const setLegalPathMap = (menu: UserMenu[]) => {
  menu.forEach((item) => {
    legalPathMap.set(item.path, true)
    if (item.children) {
      setLegalPathMap(item.children)
    }
  })
}

setLegalPathMap(topMenu)
